// import 'dart:async';

// import 'package:flutter/widgets.dart';
// import 'package:hockey/jzx_apps.dart';
// import 'package:hockey/jzx_models.dart';
// import 'package:hockey/services/jzx_user.dart';
// import 'package:rongcloud_im_wrapper_plugin/rongcloud_im_wrapper_plugin.dart';

// /// 融云IM
// class JzxRCloudService extends GetxService {
//   static JzxRCloudService get to => Get.find();

//   RCIMIWEngine? engine;

//   bool isConnected = false;

//   String targetId = '';

//   @override
//   void onInit() {
//     super.onInit();
//   }

//   /// 退出连接
//   disconnect() async {
//     await engine?.disconnect(false);
//     await engine?.destroy();
//     engine = null;
//     isConnected = false;
//   }

//   /// 注册融云
//   connect() async {
//     if (isConnected) {
//       return;
//     }

//     await disconnect();

//     final options = RCIMIWEngineOptions.create();
//     engine =
//         await RCIMIWEngine.create(JzxUserService.to.config.rcAppKey, options);

//     // 设置连接状态监听
//     engine?.onConnectionStatusChanged = (status) {
//       debugPrint('---------------融云连接状态---------------');
//       print(status);
//     };

//     // 连接
//     final data = await JzxNetRepository.client.getRCToken();
//     await engine?.connect(
//       '$data',
//       60,
//       callback: RCIMIWConnectCallback(
//           onDatabaseOpened: (int? code) {},
//           onConnected: (int? code, String? userId) {
//             if (code == 0) {
//               isConnected = true;
//               debugPrint('---------------融云连接成功---------------');
//             }
//           }),
//     );

//     // 消息接收
//     engine?.onMessageReceived =
//         (RCIMIWMessage? message, int? left, bool? offline, bool? hasPackage) {
//       print(message);
//     };
//   }

//   // 创建会话
//   // Future<bool> getConversation(String tid) async {
//   //   targetId = tid;
//   //   engine?.getConversation(RCIMIWConversationType.private, targetId, null,
//   //       callback: IRCIMIWGetConversationCallback(
//   //         onSuccess: (t) {
//   //           print(t?.targetId);
//   //         },
//   //         onError: (code) {
//   //           print(code);
//   //         },
//   //       ));
//   //   return true;
//   // }

//   // 获取历史消息
//   Future<List<RCIMIWMessage>> getMessages(String tid) async {
//     targetId = tid;
//     final completer = Completer<List<RCIMIWMessage>>();
//     await engine?.getMessages(
//         RCIMIWConversationType.private,
//         targetId,
//         null,
//         DateTime.now().millisecondsSinceEpoch,
//         RCIMIWTimeOrder.before,
//         RCIMIWMessageOperationPolicy.localRemote,
//         15,
//         callback: IRCIMIWGetMessagesCallback(
//           onSuccess: (messages) {
//             print(messages);
//             completer.complete(messages ?? []);
//           },
//           onError: (code) {
//             completer.complete([]);
//             print(code);
//           },
//         ));

//     return completer.future;
//   }

//   /// 发送文本信息
//   Future<bool> sendText(String text) async {
//     final completer = Completer<bool>();

//     RCIMIWTextMessage? message = await engine?.createTextMessage(
//       RCIMIWConversationType.private,
//       targetId,
//       null,
//       text,
//     );

//     engine?.sendMessage(message!,
//         callback: RCIMIWSendMessageCallback(
//           onMessageSent: (code, message) {
//             print(code);
//             print(message);
//             completer.complete(true);
//           },
//           onMessageSaved: (message) {
//             print('onMessageSaved -------- $message');
//           },
//         ));
//     return completer.future;
//   }

//   /// 发送语音
//   Future<bool> sendVoice(String path, int duration) async {
//     final completer = Completer<bool>();
//     RCIMIWVoiceMessage? message = await engine?.createVoiceMessage(
//       RCIMIWConversationType.private,
//       targetId,
//       null,
//       path,
//       duration,
//     );

//     engine?.sendMediaMessage(
//       message!,
//       listener: RCIMIWSendMediaMessageListener(
//           onMediaMessageSaved: (RCIMIWMediaMessage? message) {
//             print('onMessageSaved -------- $message');
//           },
//           onMediaMessageSending:
//               (RCIMIWMediaMessage? message, int? progress) {},
//           onSendingMediaMessageCanceled: (RCIMIWMediaMessage? message) {},
//           onMediaMessageSent: (int? code, RCIMIWMediaMessage? message) {
//             print(code);
//             print(message);
//             completer.complete(true);
//           }),
//     );

//     return completer.future;
//   }
// }
